package com.bishe.demo.modules.tourism.entity;

import com.bishe.demo.modules.account.entity.User;
import com.bishe.demo.modules.common.entity.City;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;

import java.time.LocalDate;
import java.util.List;

/**
 * @Description Route
 * @Author Lubb
 * @Date 2021/3/29 13:49
 */
public class Route {
    private Integer id;
    private String title;
    private String introduction;
    private String startPoint;
    private List<City> viaPoint;
    private String terminalPoint;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    private LocalDate startDate;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    private LocalDate terminalDate;
    private String type;
    private String price;
    private String level;
    private Integer fk_user_id;
    private User user;
    private Integer max_people;
    private List<TourismImage> tourismImage;
    private List<Process> processes;
    private List<RouteEvaluation> routeEvaluations;

    public Route() {
    }

    public List<RouteEvaluation> getRouteEvaluations() {
        return routeEvaluations;
    }

    public void setRouteEvaluations(List<RouteEvaluation> routeEvaluations) {
        this.routeEvaluations = routeEvaluations;
    }

    public List<Process> getProcesses() {
        return processes;
    }

    public void setProcesses(List<Process> processes) {
        this.processes = processes;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getStartPoint() {
        return startPoint;
    }

    public void setStartPoint(String startPoint) {
        this.startPoint = startPoint;
    }

    public List<City> getViaPoint() {
        return viaPoint;
    }

    public void setViaPoint(List<City> viaPoint) {
        this.viaPoint = viaPoint;
    }

    public String getTerminalPoint() {
        return terminalPoint;
    }

    public void setTerminalPoint(String terminalPoint) {
        this.terminalPoint = terminalPoint;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public Integer getFk_user_id() {
        return fk_user_id;
    }

    public void setFk_user_id(Integer fk_user_id) {
        this.fk_user_id = fk_user_id;
    }

    public Integer getMax_people() {
        return max_people;
    }

    public void setMax_people(Integer max_people) {
        this.max_people = max_people;
    }

    public LocalDate getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDate startDate) {
        this.startDate = startDate;
    }

    public LocalDate getTerminalDate() {
        return terminalDate;
    }

    public void setTerminalDate(LocalDate terminalDate) {
        this.terminalDate = terminalDate;
    }

    public List<TourismImage> getTourismImage() {
        return tourismImage;
    }

    public void setTourismImage(List<TourismImage> tourismImage) {
        this.tourismImage = tourismImage;
    }

    @Override
    public String toString() {
        return "Route{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", introduction='" + introduction + '\'' +
                ", startPoint='" + startPoint + '\'' +
                ", viaPoint=" + viaPoint +
                ", terminalPoint='" + terminalPoint + '\'' +
                ", startDate=" + startDate +
                ", terminalDate=" + terminalDate +
                ", type='" + type + '\'' +
                ", price='" + price + '\'' +
                ", level='" + level + '\'' +
                ", fk_user_id=" + fk_user_id +
                ", max_people=" + max_people +
                ", tourismImage=" + tourismImage +
                '}';
    }
}
